from codex import * from time import sleep from random import randrange import sys #tracks the number of correct presses correct = 0 #starting random lights def get_random_color(): red = randrange(256) green = randrange(256) blue = randrange(256) return (red, green, blue) pixels.set(0, get_random_color()) pixels.set(1, get_random_color()) pixels.set(2, get_random_color()) pixels.set(3, get_random_color()) #title screen display.fill_rect(0, 0, 240, 35, BLUE) display.draw_text('Simon', x = 95, scale=2, y=10, color=WHITE) sleep(4) display.clear() #turns lights off pixels.set(0, BLACK) pixels.set(1, BLACK) pixels.set(2, BLACK) pixels.set(3, BLACK) #how to play display.print("Are you ready for a challenge?") sleep(2) display.clear() display.print("You need to press the buttons in the order prompted.") sleep(2) display.print("Use up, down, left, and right.") sleep(4) display.clear() display.print("There are three levels. Get them all to hear the victory song!") sleep(4) display.show("Starting in 3...") sleep(1) display.show("2...") sleep(1) display.show("1...") sleep(1) #level1 display.show("Hold Button U") sleep(1) pressed = buttons.is_pressed(BTN_U) if pressed: pixels.set(0, GREEN) #if the button is pressed in time, increase the 'correct' variable by 1 correct += 1 else: pixels.set(0, RED) display.show("Hold Button D") sleep(1) pressed = buttons.is_pressed(BTN_D) if pressed: pixels.set(1, GREEN) correct += 1 else: pixels.set(1, RED) display.show("Hold Button L") sleep(1) pressed = buttons.is_pressed(BTN_L) if pressed: pixels.set(2, GREEN) correct += 1 else: pixels.set(2, RED) display.show("Hold Button R") sleep(1) pressed = buttons.is_pressed(BTN_R) if pressed: pixels.set(3, GREEN) correct += 1 else: pixels.set(3, RED) #if all buttons are correctly pressed, then show "Good!" if correct == 4: display.show("Good!") #if the player misses a button, then end the program else: display.show("Try again!") sys.exit() sleep(2) #level2 display.show("Hold Button R") sleep(1) pressed = buttons.is_pressed(BTN_R) if pressed: pixels.set(0, BLUE) correct += 1 else: pixels.set(0, RED) display.show("Hold Button U") sleep(1) pressed = buttons.is_pressed(BTN_U) if pressed: pixels.set(1, BLUE) correct += 1 else: pixels.set(1, RED) display.show("Hold Button D") sleep(1) pressed = buttons.is_pressed(BTN_D) if pressed: pixels.set(2, BLUE) correct += 1 else: pixels.set(2, RED) display.show("Hold Button L") sleep(1) pressed = buttons.is_pressed(BTN_L) if pressed: pixels.set(3, BLUE) correct += 1 else: pixels.set(3, RED) #another check for correct buttons if correct == 8: display.show("Nice!") sleep(1) display.show("One more time!") else: display.show("You were close!") sys.exit() sleep(2) #level3, this has two sequences display.show("Hold Button L") sleep(1) pressed = buttons.is_pressed(BTN_L) if pressed: pixels.set(0, YELLOW) correct += 1 else: pixels.set(0, RED) display.show("Hold Button R") sleep(1) pressed = buttons.is_pressed(BTN_R) if pressed: pixels.set(1, YELLOW) correct += 1 else: pixels.set(1, RED) display.show("Hold Button D") sleep(1) pressed = buttons.is_pressed(BTN_D) if pressed: pixels.set(2, YELLOW) correct += 1 else: pixels.set(2, RED) display.show("Hold Button U") sleep(1) pressed = buttons.is_pressed(BTN_U) if pressed: pixels.set(3, YELLOW) correct += 1 else: pixels.set(3, RED) display.show("Hold Button D") sleep(1) pressed = buttons.is_pressed(BTN_D) if pressed: pixels.set(0, PURPLE) correct += 1 else: pixels.set(0, RED) display.show("Hold Button L") sleep(1) pressed = buttons.is_pressed(BTN_L) if pressed: pixels.set(1, PURPLE) correct += 1 else: pixels.set(1, RED) display.show("Hold Button R") sleep(1) pressed = buttons.is_pressed(BTN_R) if pressed: pixels.set(2, PURPLE) correct += 1 else: pixels.set(2, RED) display.show("Hold Button U") sleep(1) pressed = buttons.is_pressed(BTN_U) if pressed: pixels.set(3, PURPLE) correct += 1 else: pixels.set(3, RED) #if all 16 are pressed, then play 'Africa by Toto' if correct == 16: sleep(1) display.show("You did it!") sleep(1) display.show(pics.MUSIC) audio.mp3("sounds/africa.mp3") else: display.print("Nice try!") display.print("You'll get it next time!") sys.exit()